home *** CD-ROM | disk | FTP | other *** search
/ Digital Erotic 8 / Digital Erotic 8.iso / qtwsetup / setup.mst / setup.mst
Text File  |  1994-11-18  |  22KB  |  606 lines

  1. rem ---------------------------------------------------------------------
  2. rem
  3. rem SETUP.MST    - MSSETUP Installation Script
  4. rem
  5. rem                Version 2.0
  6. rem
  7. rem                (c) Copyright 1988-1994 Apple Computer, Inc. All Rights Reserved.
  8. rem
  9. rem                Revised: 12 October 1994
  10. rem                Tony Knight, Apple Computer
  11. rem ---------------------------------------------------------------------
  12.  
  13.  
  14. rem Required includes to interface with MSSETUP DLL's
  15. rem -------------------------------------------------
  16. '$INCLUDE 'setupapi.inc'
  17. '$INCLUDE 'msdetect.inc'
  18.  
  19.  
  20. rem Dialog box id's
  21. rem ---------------
  22. rem Note: If MSSETUP were really smart, we could use the
  23. rem #defines in DIALOGS.HR. Instead, we must manually
  24. rem keep them in step
  25. rem ----------------------------------------------------
  26.     CONST NUKEOLD       = 101          ''  WARNING FOR OLDER VERSIONS
  27.     CONST OLDMESS       = 102          '' MODELESS DIALOGUE BOX FOR OLDER VERSIONS
  28.     CONST DESTPATH      = 300          ''Gets destination path
  29.     CONST EXITQUIT      = 600          ''Exits on user request
  30.     CONST EXITSUCCESS   = 700          ''Exits when install is done
  31.     CONST OPTIONS       = 800          ''Gets AUTOEXEC.BAT options
  32.     CONST ASKSETUP      = 1100         ''Gets installation type (Local etc)
  33.     CONST TOOBIG        = 6300         ''Not enough space on target disk error
  34.     CONST BADPATH       = 6400         ''Bad destination path error
  35.     CONST BADWINDOWS    = 6500         ''Wrong Windows release
  36.     CONST EXITFAILURE   = 6600         ''Exits on error
  37.  
  38.  
  39. rem String id's
  40. rem -----------
  41. rem Note: If MSSETUP were really smart, we could use the
  42. rem #defines in DIALOGS.HR. Instead, we must manually
  43. rem keep them in step
  44. rem ----------------------------------------------------
  45.     CONST STR_PLAYER    = 1024         ''Movie Player
  46.     CONST STR_VIEWER    = 1025         ''Picture Viewer
  47.     CONST STR_GROUP     = 1026         ''Program Manager group
  48.     CONST STR_TITLE     = 1027         ''Installer Title
  49.     CONST STR_MSG1      = 1028         ''Version error message part 1
  50.     CONST STR_MSG2      = 1029         ''Version error message part 2
  51.     CONST STR_MSG3      = 1030         ''Remove obsolete files?
  52.     CONST STR_WARNING   = 1031         ''Warning
  53.     CONST STR_HELP      = 1032         ''Help
  54.     CONST STR_SAMPLE    = 1033         ''Sample movie
  55.  
  56.  
  57. rem Miscellaneous Constants
  58. rem -----------------------
  59.     CONST NOLOGO = 1                   ''Dummy NULL bitmap (must be 1)
  60.     CONST LOGO = 2                     ''Background bitmap
  61.     CONST MOVIE = 2                    ''Movie placeholder bitmap
  62.     CONST NOSPACE = 1                  ''No space to complete install
  63.     CONST INSTALLOK = 2                ''Install completed OK
  64.     CONST INSTALLFAILED =3             ''Install failed for some reason
  65.     CONST FILES_REMOVED = 1
  66.     CONST FILES_SKIPPED = 2
  67.  
  68. rem Global Variables
  69. rem ----------------
  70.     GLOBAL SOURCE$                     ''Source directory
  71.     GLOBAL DEST$                       ''Default destination directory
  72.     GLOBAL DEST2$                       '' DEST FOR WINDOWS QTW .EXE'S
  73.     GLOBAL DEST3$                       '' DEST FOR DOCUMENTATION AND INTERFACES
  74.     GLOBAL LOCALINST$                  ''Local install
  75.     GLOBAL CLIENTINST$                 ''Client install
  76.     GLOBAL SERVERINST$                 ''Server install
  77.     GLOBAL SETUPPATH$                  ''Setup destination path
  78.     GLOBAL SETUPTYPE$                  ''local,client,server
  79.     GLOBAL EXTRACOSTS$                 ''List of extra costs to add per drive
  80.     GLOBAL APPNEEDS$                   ''Disk space costs per drive
  81.     GLOBAL SECTIONKEY$                 ''INF file section key
  82.     GLOBAL SUCCESS%                    ''Installation completion code
  83.  
  84.     GLOBAL CUIDLL$                     ''User interface DLL
  85.     GLOBAL HELPPROC$                   ''Help dialog procedure
  86.  
  87.  
  88. rem Initialize global vriables
  89. rem --------------------------
  90.     SOURCE$         = GetSymbolValue("STF_SRCDIR")
  91.     DEST$           = GetWindowsSysDir
  92.     DEST2$          = GetWindowsDir
  93.     DEST3$          = "C:\QTW"
  94.     LOCALINST$      = "1"
  95.     CLIENTINST$     = "2"
  96.     SERVERINST$     = "3"
  97.     SETUPPATH$      = DEST$
  98.     SETUPTYPE$      = LOCALINST$
  99.     APPNEEDS$       = "AppNeeds"
  100.     EXTRACOSTS$     = "ExtraCosts"
  101.     SECTIONKEY$     = "SectionKey"
  102.     SUCCESS%        = INSTALLFAILED
  103.  
  104.     FOR i% = 1 TO 26 STEP 1
  105.         AddListItem EXTRACOSTS$, "16384"
  106.     NEXT i%
  107.  
  108.     rem
  109.     rem default dest to first hard drive
  110.     rem since some OEM systems don't start at C:
  111.     rem
  112.     GetLocalHardDrivesList "HardDrives"
  113.     NumDrives% = GetListLength("HardDrives")
  114.  
  115.     IF (NUMDRIVES% > 0) THEN
  116.         DEST3$ = GetListItem("HardDrives",1) + ":\QTW"
  117.     END IF
  118.  
  119. rem Get name of localized user interface dialogs
  120. rem --------------------------------------------
  121.     CUIDLL$ = "SETUP"+GetIniKeyString("WIN.INI", "intl", "sLanguage")+".DLL"
  122.     IF DoesFileExist(CUIDLL$, femExists) = 0 THEN
  123.        CUIDLL$ = "SETUPENU.DLL"
  124.     END IF
  125.  
  126.  
  127. rem Subroutines and Functions
  128. rem -------------------------
  129.     DECLARE FUNCTION Install AS INTEGER
  130.     DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  131.     DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  132.     DECLARE FUNCTION GetResourceString LIB "setupenu.dll" (szResource$, idString%) AS INTEGER
  133.     DECLARE FUNCTION StartCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  134.     DECLARE FUNCTION StopCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  135.     DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER
  136.     DECLARE FUNCTION CheckForOld AS INTEGER
  137.     DECLARE FUNCTION RemoveOldQTFiles (FilePath$) AS INTEGER
  138.     DECLARE FUNCTION CheckForSpace (DrivePath$) AS INTEGER
  139.  
  140. rem Initialize custom setup logic
  141. rem -----------------------------
  142.     SetBitmap CUIDLL$, NOLOGO
  143.     i% = GetResourceString (CUIDLL$, STR_TITLE)
  144.     SetTitle GetSymbolValue ("ResourceString")
  145.     i% = StartCustomSetup (HinstFrame(), HwndFrame ())
  146.     i% = SetBeepingMode(1)
  147.  
  148. rem Make sure that we are running on Windows 3.1 or better
  149. rem ------------------------------------------------------
  150.     IF GetWindowsMajorVersion() < 3 THEN
  151.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  152.        UIPop 1
  153.        GOTO CLEANUP
  154.     END IF
  155.  
  156.     IF (GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion() < 10) THEN
  157.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  158.        UIPop 1
  159.        GOTO CLEANUP
  160.     END IF
  161.  
  162.  
  163. rem Make sure that we are running on a 286 or better
  164. rem ------------------------------------------------
  165.     IF GetWinFlags() AND 2 THEN
  166.        sz$ = UIStartDlg(CUIDLL$, BADWINDOWS, "FInfo0DlgProc", 0, "")
  167.        UIPop 1
  168.        GOTO CLEANUP
  169.     END IF
  170.  
  171. rem -------------------------------------------------------------------
  172.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  173.  
  174.     IF szInf$ = "" THEN
  175.        szTemp$ = GetSymbolValue("STF_SRCDIR")
  176.        SPLITPATH szTemp$, drv$, dir$, filename$, ext$
  177.        szInf$ = szTemp$ + "SETUP.INF"
  178.     END IF
  179.  
  180.     ReadInfFile szInf$
  181.  
  182.  
  183. rem Get the setup type: Local, Client or Server
  184. rem -------------------------------------------
  185. ITYPE:
  186.     SetSymbolValue "RadioDefault", SETUPTYPE$
  187.  
  188. ITYPEL1:
  189.     sz$ = UIStartDlg(CUIDLL$, ASKSETUP, "FRadioDlgProc", 0, "")
  190.  
  191.     SETUPTYPE$ = GetSymbolValue("ButtonChecked")
  192.  
  193.  
  194.     IF sz$ = "CONTINUE" THEN
  195.        UIPop(1)
  196.  
  197.     ELSEIF sz$ = "REACTIVATE" THEN
  198.        GOTO ITYPEL1
  199.  
  200.     ELSE
  201.        GOSUB ASKQUIT
  202.        GOTO ITYPE
  203.  
  204.     END IF
  205.  
  206.     rem Get the destination path for server install; if it's bad, we display an error
  207.     rem ----------------------------------------------------------------
  208.  
  209. GETPATH2:
  210.     IF (SETUPTYPE$ = SERVERINST$) THEN
  211.         SetSymbolValue "EditTextIn",DEST3$
  212.  
  213.         SetSymbolValue "EditFocus","ALL"
  214.  
  215.         sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  216.         DEST3$ = GetSymbolValue("EditTex